iT邦幫忙

2023 iThome 鐵人賽

DAY 1
0
AI & Data

AI白話文運動系列之「A!給我那張Image!」系列 第 1

危機就是轉機--微積分在AI中扮演怎樣的角色?

  • 分享至 

  • xImage
  •  

前言

近年來隨著硬體技術的突破,讓AI/機器學習/深度學習等領域的應用越發廣泛,這些內容說複雜可以很複雜,說簡單確實也很簡單。
要了解這些東西不免需要具備一些數學能力,但是讓你從路人小白到菜鳥新手的這個門檻,卻是沒有想像中的困難。就算沒有任何相關的背景也沒關係,在接下來的30天,讓我用說故事的方式陪你,一步步帶領大家跨越那道入門的門檻。
看到這裡的各位,記得坐穩嘍!要準備出發了!

先備知識

  1. 國中數學(你必須至少知道函數是甚麼)

看完今天的內容你可能會知道......

  1. 微積分是甚麼?
  2. 微積分跟機器學習的關係是甚麼?
  3. 我需要有很強的數學背景才能使用這些工具嗎?

一、AI大白話

https://ithelp.ithome.com.tw/upload/images/20230916/20163299g5RcUGudN2.png

  • 所謂的AI/機器學習/深度學習,是不太一樣的東西,不過在最一開始的現在,各位可以先把他們都想像成是一個大型的系統,系統裡面有非常多的參數,然後我們通過將某種資料送入這個系統,與不同參數進行運算之後,得到一個輸出結果。而模型的「訓練」過程就是一個找到最適合的參數的過程。
  • 各位在成長的過程當中一定都有過「學習」的經驗吧?不論是學校的課業,或是各種興趣、才藝的學習,線自請各位回憶一下當你在學習一項新的事務的時候,你會怎麼做?如果沒有畫面的話沒關係,現在我們假設有一系列高中數學的考卷要你嘗試作答,你會怎麼做?
  • 大部分的人會直接開始答題,然後找到參考答案,反覆思考自己的想法跟解答的想法有何不同。在學有所成之前,我們很常是跟著解答的想法走,試圖讓我們的想法跟解答的想法貼近,或者說真正的目標是希望我們在考卷上答錯的題目越少越好。
  • AI/機器學習/深度學習也是類似的概念,我們在建立一個AI模型的時候,會有某些期望,比如說這個模型要能夠像iphone一樣可以辨識我自己的臉,接著我們會開始「訓練」這個模型,試圖讓模型的輸出結果能夠更靠近我的想要的結果。
  • 至於你問說要怎麼訓練?這個就是我們接下來會好好聊聊的部分了!

二、微積分是甚麼?

https://ithelp.ithome.com.tw/upload/images/20230916/201632995AUMPW14rN.png

  • 微積分顧名思義就是微分與積分兩大主題,他們兩個都離不開「極限」這個概念。
  • 微分的目的在於觀察事物的某些特性微小到極限的狀態,舉例來說就是在一個數學函數中,當兩個點非常靠近的時候他們的函數值的變化。對應上方的左圖,如果兩個點非常靠近的話,微分的結果會就是該函數在那個位置的切線(左圖橘線)。從圖中我們可以感覺出來,切線這個東西,好像可以告訴我們一個「函數的趨勢變化」,比如:如果沿著橘線往左下走,函數值會變小,而沿著橘線往右上走,函數值則是會變大,因此在數學中我們很常會通過微分的方式來觀察一個函數的趨勢。
  • 積分則剛好相反,他在乎的是一大堆微小到極限的東西累積在一起之後會是甚麼樣子,同樣以函數來看的話就是累積一大堆無限靠近的點的函數值,也就是上方右圖所表示的藍色區域面積(可以想成是計算很多藍色區塊的圖形面積)。
  • 說了這麼多,我們又不是來談數學的,所以微積分到底跟AI有甚麼關係呢?
  • 文章的最前面有提到我們訓練一個模型目的在於要「最小化」輸出結果與我們期望的結果之間的差異(這個差異就是所謂的目標函數),最小化這個動作就是由微分來判斷的,我們「藉由微分找出可以讓差異變小的方向」,接著只需要讓參數往這樣的方向調整,就可以使這個模型經過每一次的調整之後,越來越能夠變成我們想要的樣子。

三、訓練AI模型的一大利器:梯度下降法

https://ithelp.ithome.com.tw/upload/images/20230916/20163299lmLuskTPvS.png

  • 再接著往下講之前,先請各位回憶一下自己每次下樓梯的過程,如果要把這樣的過程歸納成一個SOP的話,我想關鍵應該是「往下走」+「每一步需要跨出多大的步伐」,因為我們都知道,如果要從樓上到樓下的話,我只需要確保我始終都在往下移動,不論我移動多快多慢,最後一定可以到達我要的樓層。
  • AI模型中參數的更新也是一樣的,如果我們已經知道需要更新的方向的話,我們就需要設定每一次更新需要更新多少,也就是每一步需要走多遠,每次的更新公式如上圖右側所示,每一筆新的參數都取決於原先的參數、更新方向以及更新的大小,這也是AI模型訓練中梯度下降法的核心概念。
  • 為甚麼我一直拿「往下走」來舉例呢?還記得我們前面有提到過,AI模型訓練的目的在於「最小化理想與現實的差異」,所以,當然往下走就代表我們可以得到比較小的差異值嘍!畢竟我們的更新方向是通過這個差異微分計算後得出來的,這也是為甚麼我們的更新方向需要確保參數可以往「讓差異變小」的方向走的原因。

四、總結

  • 在今天的內容裡面,我們簡單的討論了微積分在AI模型當中扮演的角色,這些概念與生活中隨處可見的事物息息相關,因此通過實際例子來理解應該不會那麼陌生,只是在數學上,我們會使用非常嚴謹的方式來描述這些概念,這才讓這些數學看起來不那麼平易近人。
  • 所以,如果你沒有相關的數學背景,你能否建立自己的AI模型,並且應用在自己的使用情境裡?以我的角度來看是絕對可以的,一來,現在有許多包裝好的模型可以組合,二來,因為這些AI當中的重要概念能夠被每個人都用自己的方式來理解,因此,理解概念+有現有的資源可以使用,要訓練出一個自己的AI模型絕對是沒問題的!

下一篇
AI的關鍵利器--梯度下降法在Pytorch中的運作方式
系列文
AI白話文運動系列之「A!給我那張Image!」30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言